<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Vue监测数据改变的原理——对象</title>
        <!-- 引入Vue -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <div id="root">
            <h1>监测数据改变原理</h1>
            <img src="../images/监测数据原理1.png" alt="">
            <p>对于data中的每个数据，都会被Vue进行数据代理，通过Object.defineProperty进行数据代理，获取数据使用get，设置数据使用set，vue中使用递归的方法，对data中的每个元素以及元素包含的对象，都进行了数据代理。</p>
            <img src="../images/监测数据改变原理.png" alt="">
            <h2>学校：{{name}}</h2>
            <h2>地址：{{address}}</h2>
        </div>
        <script type="text/javascript">
            Vue.config.productionTip = false    // 阻止Vue在启动时生成生产提示

            // 使用计算属性实现列表过滤
            const vm = new Vue({
                el: '#root',
                data: {
                    name: "清华",
                    address: '北京',
                    student: {
                        name: 'tom',
                        age: {
                            real_age: 28,
                            speed_age: 20
                        },
                        friends: [
                            {name: '张三', sex: '男'},
                            {name: '小花', sex: '女'}
                        ]
                    }
                }
            })
        </script>
    </body>
</html>
